package com.cskaoyan.javase.oop1._11anonymous;

/**
 * 匿名（anonymous）或者佚名，指的是没有名字或者名字缺失。
 * 在Java当中，匿名对象指的就是没有名字的对象。
 * 或者，说的更清楚一点，就是：
 * 在创建对象时，就没有引用指向的对象，就是匿名对象！
 *
 * 匿名对象的语法很简单，只需要在方法等位置中写下列语法：
 * new 类名();
 * 以上语法就得到了一个匿名对象，从实质上看：
 * 该对象没有栈上的引用指向，没有所谓的"对象名"，是一个匿名对象。
 *
 * 匿名对象的作用:
 *      1.直接使用,简单快捷方便,省了一步引用接收的过程.
 *      2.(更多见的)配合方法去使用
 *          作为方法的实参传递给方法
 *          作为方法的返回值返回给外界
 *
 * @since 17:18
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {
        // 创建匿名对象
        new Student();

        System.out.println(new Student().age);
        new Student().test();

        Student s = new Student();
        method(s);
        // 上述步骤二合一
        method(new Student());
    }

    // 形参数据类型写一个类名时,表示需要传入该类的对象
    public static void method(Student s) {
    }

    // 返回值类型写一个类名时,表示需要返回该类的对象
    public static Student method(){
        // Student s = new Student();
        // return s;
        // 二合一
        return new Student();
    }
}

class Student {
    int age;

    public void test() {
    }
}
